package models

import (
	"gin_study_blog/common"
	"gin_study_blog/common/blog_type"
	"gorm.io/gorm"
	"os"
)

// BannerModel 图片表
type BannerModel struct {
	MODEL
	Path       string               `json:"path"`                         // 图片路径
	Key        string               `gorm:"column:image_key" json:"key"`  // 图片的hash值, 用于判断重复图片
	Name       string               `gorm:"size:38" json:"name"`          // 图片名称
	ImagesType blog_type.ImagesType `gorm:"default:1" json:"images_type"` // 图片存储类型 1 本地 2 七牛
}

// BeforeDelete 在同一个事务中更新数据, 钩子函数
func (b *BannerModel) BeforeDelete(tx *gorm.DB) (err error) {
	// 本地存储
	if b.ImagesType == blog_type.Local {
		err = os.Remove(b.Path)
		if err != nil {
			common.Log.Error(err.Error())
			return err
		}
	}
	return nil
}
